﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using BettingDT.GUI.Contratos;
using ReglasDeNegocio.Comandos;
using ReglasDeNegocio.Comandos.ComandoAdministracionLogin;
using ReglasDeNegocio.FabricaLogica;
using FuenteDeDatos.Entidades;
using log4net;
using System.Reflection;


namespace BettingDT.GUI.Presentadores
{

    /// <summary>
    /// Clase que maneja la lógica de la interfaz de usuario para el inicio de 
    /// sesión
    /// </summary>
    /// 
    
    public class PresentadorInicioSesion
    {

        //private static log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
        //private static readonly ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

        // variable para el uso de Log4Net
        private static log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

        private IContratoInicioSesion _inicioSesion;
        Boolean flag = false;

        /// <summary>
        /// Constructor de la clase
        /// </summary>
        /// <param name="inicioSesion">
        /// Datos de la página de inicio de sesión requeridos para iniciar una
        /// nueva sesión
        /// </param>
        public PresentadorInicioSesion(IContratoInicioSesion inicioSesion)
        {
            _inicioSesion = inicioSesion;
        }

        /// <summary>
        /// Código a ejecutar cuando el usuario presiona el botón Ingresar
        /// para acceder al sistema
        /// </summary>
        public bool ClickIngresar()
        {
            log.Info("ClickIngresar con los datos : "+_inicioSesion.Alias +" --- "+_inicioSesion.Clave);
            //Log.Debug("This is a DEBUG level message. Typically your most VERBOSE level.");
            Credencial credencial = new Credencial(_inicioSesion.Alias, _inicioSesion.Clave);
            Comando comando = FabricaComandoCredencial.CrearComandoValidarCredencial(credencial);
            comando.Ejecutar();
            return comando.Flag;
        }

    }
}